
/*
 * Desenvolvimento para WEB
 * 
 * NOME: Vitor Augusto Graciani           RA: 345270
 * NOME: Felipe Petruz Brina              RA: 345083
 * NOME: Diego Zamboni Latance            RA: 344990
 * NOME: Rafael Claudio Domene            RA: 345040
 * NOME: Vinicius Rodrigues de Campos     RA: 345350
 * 
 */
package model;

import auxiliar.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.ArrayList;

public class ColaboradorDAO {

    private Connection conn;

    public ColaboradorDAO() throws DAOException {
        try {
            this.conn = ConnectionFactory.getConnection();

        } catch (Exception e) {
            throw new DAOException("Erro: " + ":\n" + e.getMessage());
        }
    }

    //Retorna o nome do usuario logado
    public UsuarioBEAN retornaNome(String email) throws DAOException {
        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;
        UsuarioBEAN novo = null;
        String nome = null;
        String emailRetorno = null;
        try {
            String SQL = "SELECT nome, email FROM colaborador where email='" + email + "'";//Podera ocorrer modificacoes
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            rs = ps.executeQuery();
            while (rs.next()) {
                nome = rs.getObject("nome").toString();
                emailRetorno = rs.getObject("email").toString();
            }
            novo = new UsuarioBEAN(nome, emailRetorno, null);
            return novo;
        } catch (SQLException sqle) {
            throw new DAOException(sqle);
        } finally {
            ConnectionFactory.closeConnection(conn, ps, rs);
        }
    }
    //precisa colocar a insercao sql ********************************************************************

    public void cadastroColaborador(ColaboradorBEAN colaborador) throws DAOException {
        PreparedStatement ps = null;
        Connection conn = null;
        if (colaborador == null) {
            throw new DAOException("Usuario nao pode ser nulo");
        }
        try {

            //Atributos usados na String SQL para cadastro
            String nome = colaborador.getNome();
            String sobrenome = colaborador.getSobrenome();
            String email = colaborador.getEmail();
            String senha = colaborador.getSenha();

            String SQL = "EXECUTE insereColaborador '" + nome + "', '" + sobrenome + "', '" + email + "', '" + senha + "'";
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            ps.executeUpdate();

        } catch (SQLException sqle) {
            throw new DAOException("Erros ao inserir dados: ");
        } finally {
            ConnectionFactory.closeConnection(conn, ps);
        }
    }

    public boolean emailValido(String email) throws DAOException {

        PreparedStatement ps = null;
        Connection conn = null;
        ResultSet rs = null;
        UsuarioBEAN novo = null;
        String emailVerificacao = null;

        try {
            String SQL = "SELECT email FROM colaborador WHERE email='" + email + "'";
            conn = this.conn;
            ps = conn.prepareStatement(SQL);
            rs = ps.executeQuery();

            if (!rs.next()) {
                return true;
            } else {
                return false;
            }
        } catch (SQLException sqle) {
            throw new DAOException(sqle);
        }
    }
}